﻿<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:Converters="clr-namespace:De06B_Nhom02.Converters"
             x:Class="De06B_Nhom02.Controls.Notification"
             Height="100"
             Width="200"
             mc:Ignorable="d"
             d:DesignHeight="100"
             d:DesignWidth="300">
    <UserControl.Resources>
        <Converters:BooleanToBrushConverter x:Key="BooleanToBrushConverter" />
        <Converters:BooleanToStatusConverter x:Key="BooleanToStatusConverter" />
        <Storyboard x:Key="ShowNoti">
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)"
                                           Storyboard.TargetName="grid">
                <EasingDoubleKeyFrame KeyTime="0"
                                      Value="0">
                    <EasingDoubleKeyFrame.EasingFunction>
                        <CubicEase EasingMode="EaseIn" />
                    </EasingDoubleKeyFrame.EasingFunction>
                </EasingDoubleKeyFrame>
                <EasingDoubleKeyFrame KeyTime="0:0:0.7"
                                      Value="1">
                    <EasingDoubleKeyFrame.EasingFunction>
                        <CubicEase EasingMode="EaseIn" />
                    </EasingDoubleKeyFrame.EasingFunction>
                </EasingDoubleKeyFrame>
                <EasingDoubleKeyFrame KeyTime="0:0:9.5"
                                      Value="1" />
                <EasingDoubleKeyFrame KeyTime="0:0:10"
                                      Value="0" />
            </DoubleAnimationUsingKeyFrames>
            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)"
                                           Storyboard.TargetName="grid">
                <DiscreteObjectKeyFrame KeyTime="0:0:0.7"
                                        Value="{x:Static Visibility.Visible}" />
                <DiscreteObjectKeyFrame KeyTime="0:0:10"
                                        Value="{x:Static Visibility.Collapsed}" />
            </ObjectAnimationUsingKeyFrames>
        </Storyboard>
        <Style x:Key="FocusVisual">
            <Setter Property="Control.Template">
                <Setter.Value>
                    <ControlTemplate>
                        <Rectangle Margin="2"
                                   SnapsToDevicePixels="true"
                                   Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"
                                   StrokeThickness="1"
                                   StrokeDashArray="1 2" />
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
        <SolidColorBrush x:Key="Button.Static.Background"
                         Color="#FFDDDDDD" />
        <SolidColorBrush x:Key="Button.Static.Border"
                         Color="#FF707070" />
        <SolidColorBrush x:Key="Button.MouseOver.Background"
                         Color="#FFBEE6FD" />
        <SolidColorBrush x:Key="Button.MouseOver.Border"
                         Color="#FF3C7FB1" />
        <SolidColorBrush x:Key="Button.Pressed.Background"
                         Color="#FFC4E5F6" />
        <SolidColorBrush x:Key="Button.Pressed.Border"
                         Color="#FF2C628B" />
        <SolidColorBrush x:Key="Button.Disabled.Background"
                         Color="#FFF4F4F4" />
        <SolidColorBrush x:Key="Button.Disabled.Border"
                         Color="#FFADB2B5" />
        <SolidColorBrush x:Key="Button.Disabled.Foreground"
                         Color="#FF838383" />
        <Style x:Key="ButtonStyle1"
               TargetType="{x:Type Button}">
            <Setter Property="FocusVisualStyle"
                    Value="{StaticResource FocusVisual}" />
            <Setter Property="Background"
                    Value="{StaticResource Button.Static.Background}" />
            <Setter Property="BorderBrush"
                    Value="{StaticResource Button.Static.Border}" />
            <Setter Property="Foreground"
                    Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" />
            <Setter Property="BorderThickness"
                    Value="1" />
            <Setter Property="HorizontalContentAlignment"
                    Value="Center" />
            <Setter Property="VerticalContentAlignment"
                    Value="Center" />
            <Setter Property="Padding"
                    Value="1" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type Button}">
                        <Border x:Name="border"
                                BorderBrush="{TemplateBinding BorderBrush}"
                                BorderThickness="{TemplateBinding BorderThickness}"
                                Background="{TemplateBinding Background}"
                                SnapsToDevicePixels="true">
                            <ContentPresenter x:Name="contentPresenter"
                                              Focusable="False"
                                              HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                              Margin="{TemplateBinding Padding}"
                                              RecognizesAccessKey="True"
                                              SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
                                              VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
                        </Border>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsDefaulted"
                                     Value="true">
                                <Setter Property="BorderBrush"
                                        TargetName="border"
                                        Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" />
                            </Trigger>
                            <Trigger Property="IsMouseOver"
                                     Value="true">
                                <Setter Property="Background"
                                        TargetName="border"
                                        Value="{StaticResource Button.MouseOver.Background}" />
                                <Setter Property="BorderBrush"
                                        TargetName="border"
                                        Value="{StaticResource Button.MouseOver.Border}" />
                            </Trigger>
                            <Trigger Property="IsPressed"
                                     Value="true">
                                <Setter Property="Background"
                                        TargetName="border"
                                        Value="{StaticResource Button.Pressed.Background}" />
                                <Setter Property="BorderBrush"
                                        TargetName="border"
                                        Value="{StaticResource Button.Pressed.Border}" />
                            </Trigger>
                            <Trigger Property="IsEnabled"
                                     Value="false">
                                <Setter Property="Background"
                                        TargetName="border"
                                        Value="{StaticResource Button.Disabled.Background}" />
                                <Setter Property="BorderBrush"
                                        TargetName="border"
                                        Value="{StaticResource Button.Disabled.Border}" />
                                <Setter Property="TextElement.Foreground"
                                        TargetName="contentPresenter"
                                        Value="{StaticResource Button.Disabled.Foreground}" />
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </UserControl.Resources>
    <UserControl.Triggers>
        <EventTrigger RoutedEvent="FrameworkElement.Loaded">
            <BeginStoryboard Storyboard="{StaticResource ShowNoti}" />
        </EventTrigger>
    </UserControl.Triggers>
    <Grid x:Name="grid"
          Background="{Binding IsSuccess, Converter={StaticResource BooleanToBrushConverter}, Mode=OneWay}">
        <StackPanel Margin="10,0">
            <TextBlock Text="{Binding ThreadId, StringFormat=Thread \{0\}:}"
                       Foreground="White"
                       FontSize="20"
                       FontWeight="SemiBold"
                       Margin="10,0,0,0" />
            <TextBlock TextWrapping="Wrap"
                       Foreground="White">
                <Run Text="From [" />
                <Run Text="{Binding Start.X}" />
                <Run Text="," />
                <Run Text="{Binding Start.Y}" />
                <Run Text="] to [" />
                <Run Text="{Binding Goal.X}" />
                <Run Text="," />
                <Run Text="{Binding Goal.Y}" />
                <Run Text="]" />
            </TextBlock>
            <TextBlock TextWrapping="Wrap"
                       Text="{Binding Distance, Mode=OneWay, StringFormat=Distance: \{0\}}"
                       Foreground="White" />
            <TextBlock TextWrapping="Wrap"
                       Text="{Binding VisitedNo, StringFormat=Visited Nodes: \{0\}}"
                       Foreground="White" />
            <TextBlock TextWrapping="Wrap"
                       Text="{Binding Time, StringFormat=Time: \{0\}s}"
                       Foreground="White" />
        </StackPanel>
        <Button Content="Button"
                HorizontalAlignment="Right"
                VerticalAlignment="Top"
                Width="75"
                Style="{DynamicResource ButtonStyle1}"
                Visibility="Collapsed" />
    </Grid>
</UserControl>